﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using MySql.Data;
using MySql.Data.MySqlClient;
using System.IO;
using System.Windows.Forms;
using DAL;
using Entities;


namespace BL
{
    public class TesoreriaMovimientosBLL
    {
        public DataSet dt;
        public DataTable tblColores;

        public static DataSet CrearDataset()
        {
          //  string strFilePath = Application.StartupPath + "\\Datasets_xml\\";
            string strFilePath = Application.StartupPath + "\\Datasets_xml\\";
            if (File.Exists(strFilePath + "TesoreriaMovimientos.xml"))
            {
                DataSet dt = new DataSet();
                dt.ReadXml(strFilePath + "TesoreriaMovimientos.xml");
                dt.AcceptChanges();
                return dt;
            }
            else
            {
                DataSet dt = DAL.TesoreriaMovimientosDAL.CrearDataset();
                dt.Tables["TesoreriaMovimientos"].WriteXml(strFilePath + "TesoreriaMovimientos.xml", XmlWriteMode.WriteSchema);
                return dt;
            }
        }

        public static void BorrarDT(DataGridView gvwDatos)
        {
            DAL.TesoreriaMovimientosDAL.BorrarDT(gvwDatos);
        }

        public static void GrabarDB(DataSet dt, ref int? codigoError)
        {
            MySqlTransaction tr = null;
            try
            {
                MySqlConnection SqlConnection1 = DALBase.GetConnection();
                SqlConnection1.Open();
                tr = SqlConnection1.BeginTransaction();
                DAL.TesoreriaMovimientosDAL.GrabarDB(dt, SqlConnection1, tr);
                tr.Commit();
                SqlConnection1.Close();
            }
            catch (MySqlException ex)
            {
                if (ex.Number == 1042) //no se pudo abrir la conexion por falta de internet
                {
                    dt.RejectChanges(); ;
                    codigoError = 1042;
                }
                else
                {
                    dt.RejectChanges();
                    if (tr != null)
                    {
                        tr.Rollback();
                    }
                    codigoError = ex.Number;
                }
            }
        }

        public static void BorrarByPK(int PK, ref int? codigoError)
        {
            try
            {
                DAL.TesoreriaMovimientosDAL.BorrarByPK(PK);
            }
            catch (MySqlException ex)
            {
                if (ex.Number == 1042) //no se pudo abrir la conexion por falta de internet
                {
                    codigoError = 1042;
                }
                else
                {
                    codigoError = ex.Number;
                }
            }
        }
    }
}
